home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Reference Guide / C-C++ Interactive Reference Guide.iso / c_ref / csource5 / 349_01 / sss.arc / EX_0505.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-04-12  |  1.4 KB  |  74 lines

  1. Program EX_0505;
  2. {Listing 10P - see documentation in TUTOR.SSS}
  3.  
  4. uses SSS;
  5. { For Pascal other than Turbo/Quick erase above line }
  6.  
  7. const
  8.   ARRIVL = 1;
  9.   STARTA = 2;
  10.   ENDACT = 3;
  11.   NEXTAC = 4;
  12.  
  13. { For MS Pascal $include:'SSSP1.H' }
  14.  
  15. var
  16.   id, server, ecode    : integer;
  17.  
  18. { For MS Pascal $include:'SSSP2.H' }
  19.  
  20. procedure prime;
  21. begin
  22.   server := 1;
  23.   id     := 0;
  24.   INIQUE(1,1,1);
  25.   SIMEND(24);
  26.   CREATE(0, 0);
  27.   INISTA(1,'Cost',0,0,0,0);
  28. end;
  29.  
  30. begin
  31.  
  32.   prime;
  33.  
  34.   repeat
  35.     ecode := NEXTEV;
  36.     if ecode > 0 then
  37.     begin
  38.       case ecode of
  39.  
  40.       ARRIVL: begin
  41.                 id := id + 1;
  42.                 CREATE(EX(1), id );
  43.                 SETA(1, T);
  44.                 SCHED(0, NEXTAC, IDE);
  45.               end;
  46.  
  47.       NEXTAC: if server > 0 then SCHED(0, STARTA, IDE)
  48.               else               QUEUE(1, 0);
  49.  
  50.       STARTA: begin
  51.                  SCHED(RN(0.66667, 0.16667) ,ENDACT,
  52.                        IDE);
  53.                  server := server - 1;
  54.               end;
  55.  
  56.       ENDACT: begin
  57.                 TALLY(1, (T - A(1))*(1 + EX(2)));
  58.                 DISPOS;
  59.                 server := server + 1;
  60.                 if NQ(1) > 0 then
  61.                 begin
  62.                   REMVFQ(1,1);
  63.                   SCHED(0, STARTA, IDE);
  64.                 end;
  65.               end;
  66.  
  67.       end;
  68.     end;
  69.   until ecode = 0;
  70.  
  71.   SUMRY('');
  72.  
  73. end.
  74.